<?php
require_once dirname(__FILE__) .DIRECTORY_SEPARATOR.  "class_MemberList.php";

class MemberGroupSteel extends MemberList {
    public $steel_type; //Сталь
    public $steel_Ry; //Сопротивление стали в Н/мм2
    public $gamma_c; //Гамма С
    public $flexibility; //Гибкость
    public $group_type; //0 - констр эл-т, 1 - группа эл-т
    public $mu_XZ; //Коэффициент расчетной длины в пл-ти XoZ
    public $mu_XY; //Коэффициент расчетной длины в пл-ти XoY
    public $name; //имя

    /**
    * разбираем группу элементов и группы для подбора арматуры
    * Документ 28
    * Пример
    * "C245" 240.262      0.    0.95    400.
    * 1     1.     0.
    * 0     0.     0.     0.     0.     0.     0.     0.      0      0
    * Name="+4.000 - B3_1" : 54 55 99 102 103 106 107 110
    *
    * @param String $s
    * @return Array
    */
    function get ($s) {
        $s = trim($s);
        $s = explode("\r\n", $s);
//        print_r($s).'<br/>';
        
        //Разбираем 1 строку
        preg_match('|\s*"(.*)"\s+([\d\.]+)\s+([\d\.]+)\s+([\d\.]+)\s+([\d\.]+)|', $s[0], $matches);
        $this->steel_type = (string)$matches[1];
//        echo 'STEEL_TYPE = '.  $this->steel_type.'<br/>';
        $this->steel_Ry = (float)$matches[2];
//        echo 'STEEL_Ry = '.  $this->steel_Ry.'<br/>';
        $this->gamma_c = (float)$matches[4];
//        echo 'G_C = '.  $this->gamma_c.'<br/>';
        $this->flexibility = (float)$matches[5];
//        echo 'FLEX = '.  $this->flexibility.'<br/>';

        //Разбираем 2 строку
        preg_match('|\s*(\d+)\s+([\d\.]+)\s+([\d\.]+)|', $s[1], $matches);
        $this->group_type = (boolean)$matches[1];
//        echo 'GROUP_TYPE = '.  $this->group_type.'<br/>';
        $this->mu_XZ = (float)$matches[2];
//        echo 'MU_XZ = '.  $this->mu_XZ.'<br/>';
        $this->mu_XY = (float)$matches[3];
//        echo 'MU_XY = '.  $this->mu_XY.'<br/>';

        //Разбираем оставшиеся строки
        array_splice($s, 0, 3); //удаляем первые 3 строки
        $s = implode(' ',$s); //объединяем оставшиеся в строку
        preg_match('|\s*Name="(.*)"\s+:\s+(.*)|', $s, $matches);
        $this->name = (string)$matches[1];
//        echo 'NAME = '.  $this->name.'<br/>';
        $this->list = (array)$this->get_member_list($matches[2]);
//        echo 'LIST = '.implode(';',$this->list).'<br/>';

//        echo '<br/>';
    }

    function set () {
        //1-я строка
        $s = '"'.$this->steel_type.'" '.sprintf("%01.3f", $this->steel_Ry).' 0 '.sprintf("%01.2f", $this->gamma_c).' '.$this->flexibility."\r\n";
        //2-я строка
        $s .= sprintf("%d",$this->group_type).' '.sprintf("%01.2f", $this->mu_XZ).' '.sprintf("%01.2f", $this->mu_XY)."\r\n";
        //3-я строка
        $s .= '0     0.     0.     0.     0.     0.     0.     0.      0      0'."\r\n";
        //4-я строка
        $s .= 'Name="'.$this->name.'" : '.$this->set_member_list();
        return $s;
    }
}
?>